home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 April: Mac OS SDK / Dev.CD Apr 99 SDK1.toast / Development Kits / Interfaces&Libraries / Universal / Interfaces / PInterfaces / AEDataModel.p < prev    next >
Encoding:
Text File  |  1998-08-17  |  17.7 KB  |  443 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        AEDataModel.p
  3.  
  4.      Contains:    AppleEvent Data Model Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1996-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. }
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT AEDataModel;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __AEDATAMODEL__}
  27. {$SETC __AEDATAMODEL__ := 1}
  28.  
  29. {$I+}
  30. {$SETC AEDataModelIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33. {$IFC UNDEFINED __MACTYPES__}
  34. {$I MacTypes.p}
  35. {$ENDC}
  36. {$IFC UNDEFINED __MIXEDMODE__}
  37. {$I MixedMode.p}
  38. {$ENDC}
  39.  
  40.  
  41. {$PUSH}
  42. {$ALIGN MAC68K}
  43. {$LibExport+}
  44.  
  45. { Apple event descriptor types }
  46.  
  47. CONST
  48.     typeBoolean                    = 'bool';
  49.     typeChar                    = 'TEXT';
  50.  
  51. { Preferred numeric Apple event descriptor types }
  52.     typeSInt16                    = 'shor';
  53.     typeSInt32                    = 'long';
  54.     typeUInt32                    = 'magn';
  55.     typeSInt64                    = 'comp';
  56.     typeIEEE32BitFloatingPoint    = 'sing';
  57.     typeIEEE64BitFloatingPoint    = 'doub';
  58.     type128BitFloatingPoint        = 'ldbl';
  59.     typeDecimalStruct            = 'decm';
  60.  
  61. { Non-preferred Apple event descriptor types }
  62.     typeSMInt                    = 'shor';
  63.     typeShortInteger            = 'shor';
  64.     typeInteger                    = 'long';
  65.     typeLongInteger                = 'long';
  66.     typeMagnitude                = 'magn';
  67.     typeComp                    = 'comp';
  68.     typeSMFloat                    = 'sing';
  69.     typeShortFloat                = 'sing';
  70.     typeFloat                    = 'doub';
  71.     typeLongFloat                = 'doub';
  72.     typeExtended                = 'exte';
  73.  
  74. { More Apple event descriptor types }
  75.     typeAEList                    = 'list';
  76.     typeAERecord                = 'reco';
  77.     typeAppleEvent                = 'aevt';
  78.     typeEventRecord                = 'evrc';
  79.     typeTrue                    = 'true';
  80.     typeFalse                    = 'fals';
  81.     typeAlias                    = 'alis';
  82.     typeEnumerated                = 'enum';
  83.     typeType                    = 'type';
  84.     typeAppParameters            = 'appa';
  85.     typeProperty                = 'prop';
  86.     typeFSS                        = 'fss ';
  87.     typeKeyword                    = 'keyw';
  88.     typeSectionH                = 'sect';
  89.     typeWildCard                = '****';
  90.     typeApplSignature            = 'sign';
  91.     typeQDRectangle                = 'qdrt';
  92.     typeFixed                    = 'fixd';
  93.     typeSessionID                = 'ssid';
  94.     typeTargetID                = 'targ';
  95.     typeProcessSerialNumber        = 'psn ';
  96.     typeKernelProcessID            = 'kpid';
  97.     typeDispatcherID            = 'dspt';
  98.     typeNull                    = 'null';                        {  null or nonexistent data  }
  99.  
  100. { Keywords for Apple event attributes }
  101.     keyTransactionIDAttr        = 'tran';
  102.     keyReturnIDAttr                = 'rtid';
  103.     keyEventClassAttr            = 'evcl';
  104.     keyEventIDAttr                = 'evid';
  105.     keyAddressAttr                = 'addr';
  106.     keyOptionalKeywordAttr        = 'optk';
  107.     keyTimeoutAttr                = 'timo';
  108.     keyInteractLevelAttr        = 'inte';                        {  this attribute is read only - will be set in AESend  }
  109.     keyEventSourceAttr            = 'esrc';                        {  this attribute is read only  }
  110.     keyMissedKeywordAttr        = 'miss';                        {  this attribute is read only  }
  111.     keyOriginalAddressAttr        = 'from';                        {  new in 1.0.1  }
  112.  
  113.  
  114. {    Constants used for specifying the factoring of AEDescLists. }
  115.     kAEDescListFactorNone        = 0;
  116.     kAEDescListFactorType        = 4;
  117.     kAEDescListFactorTypeAndSize = 8;
  118.  
  119. { Constants used creating an AppleEvent }
  120.                                                                 {  Constant for the returnID param of AECreateAppleEvent  }
  121.     kAutoGenerateReturnID        = -1;                            {  AECreateAppleEvent will generate a session-unique ID  }
  122.                                                                 {  Constant for transaction ID’s  }
  123.     kAnyTransactionID            = 0;                            {  no transaction is in use  }
  124.  
  125. { Apple event manager data types }
  126.  
  127. TYPE
  128.     DescType                            = ResType;
  129.     AEKeyword                            = FourCharCode;
  130.     AEDescPtr = ^AEDesc;
  131.     AEDesc = RECORD
  132.         descriptorType:            DescType;
  133.         dataHandle:                Handle;
  134.     END;
  135.  
  136.     AEKeyDescPtr = ^AEKeyDesc;
  137.     AEKeyDesc = RECORD
  138.         descKey:                AEKeyword;
  139.         descContent:            AEDesc;
  140.     END;
  141.  
  142. { a list of AEDesc's is a special kind of AEDesc }
  143.     AEDescList                            = AEDesc;
  144.     AEDescListPtr                         = ^AEDescList;
  145. { AERecord is a list of keyworded AEDesc's }
  146.     AERecord                            = AEDescList;
  147.     AERecordPtr                         = ^AERecord;
  148. { an AEDesc which contains address data }
  149.     AEAddressDesc                        = AEDesc;
  150.     AEAddressDescPtr                     = ^AEAddressDesc;
  151. { an AERecord that contains an AppleEvent, and related data types }
  152.     AppleEvent                            = AERecord;
  153.     AppleEventPtr                         = ^AppleEvent;
  154.     AEReturnID                            = SInt16;
  155.     AETransactionID                        = SInt32;
  156.     AEEventClass                        = FourCharCode;
  157.     AEEventID                            = FourCharCode;
  158.     AEArrayType                            = SInt8;
  159.  
  160. CONST
  161.     kAEDataArray                = 0;
  162.     kAEPackedArray                = 1;
  163.     kAEDescArray                = 3;
  164.     kAEKeyDescArray                = 4;
  165.  
  166.  
  167.     kAEHandleArray                = 2;
  168.  
  169.  
  170. TYPE
  171.     AEArrayDataPtr = ^AEArrayData;
  172.     AEArrayData = RECORD
  173.         CASE INTEGER OF
  174.         0: (
  175.             kAEDataArray:        ARRAY [0..0] OF INTEGER;
  176.             );
  177.         1: (
  178.             kAEPackedArray:        SInt8;
  179.             );
  180.         2: (
  181.             kAEHandleArray:        ARRAY [0..0] OF Handle;
  182.             );
  183.         3: (
  184.             kAEDescArray:        ARRAY [0..0] OF AEDesc;
  185.             );
  186.         4: (
  187.             kAEKeyDescArray:    ARRAY [0..0] OF AEKeyDesc;
  188.             );
  189.     END;
  190.  
  191.     AEArrayDataPointer                    = ^AEArrayData;
  192.     AEArrayDataPointerPtr                 = ^AEArrayDataPointer;
  193.  
  194. {*************************************************************************
  195.   These calls are used to set up and modify the coercion dispatch table.
  196. *************************************************************************}
  197. {$IFC TYPED_FUNCTION_POINTERS}
  198.     AECoerceDescProcPtr = FUNCTION({CONST}VAR fromDesc: AEDesc; toType: DescType; handlerRefcon: LONGINT; VAR toDesc: AEDesc): OSErr;
  199. {$ELSEC}
  200.     AECoerceDescProcPtr = ProcPtr;
  201. {$ENDC}
  202.  
  203. {$IFC TYPED_FUNCTION_POINTERS}
  204.     AECoercePtrProcPtr = FUNCTION(typeCode: DescType; dataPtr: UNIV Ptr; dataSize: Size; toType: DescType; handlerRefcon: LONGINT; VAR result: AEDesc): OSErr;
  205. {$ELSEC}
  206.     AECoercePtrProcPtr = ProcPtr;
  207. {$ENDC}
  208.  
  209.     AECoerceDescUPP = UniversalProcPtr;
  210.     AECoercePtrUPP = UniversalProcPtr;
  211.  
  212. CONST
  213.     uppAECoerceDescProcInfo = $00003FE0;
  214.     uppAECoercePtrProcInfo = $0003FFE0;
  215.  
  216. FUNCTION NewAECoerceDescProc(userRoutine: AECoerceDescProcPtr): AECoerceDescUPP;
  217.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  218.     INLINE $2E9F;
  219.     {$ENDC}
  220.  
  221. FUNCTION NewAECoercePtrProc(userRoutine: AECoercePtrProcPtr): AECoercePtrUPP;
  222.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  223.     INLINE $2E9F;
  224.     {$ENDC}
  225.  
  226. FUNCTION CallAECoerceDescProc({CONST}VAR fromDesc: AEDesc; toType: DescType; handlerRefcon: LONGINT; VAR toDesc: AEDesc; userRoutine: AECoerceDescUPP): OSErr;
  227.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  228.     INLINE $205F, $4E90;
  229.     {$ENDC}
  230.  
  231. FUNCTION CallAECoercePtrProc(typeCode: DescType; dataPtr: UNIV Ptr; dataSize: Size; toType: DescType; handlerRefcon: LONGINT; VAR result: AEDesc; userRoutine: AECoercePtrUPP): OSErr;
  232.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  233.     INLINE $205F, $4E90;
  234.     {$ENDC}
  235.  
  236. TYPE
  237.     AECoercionHandlerUPP                = UniversalProcPtr;
  238. FUNCTION AEInstallCoercionHandler(fromType: DescType; toType: DescType; handler: AECoercionHandlerUPP; handlerRefcon: LONGINT; fromTypeIsDesc: BOOLEAN; isSysHandler: BOOLEAN): OSErr;
  239.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  240.     INLINE $303C, $0A22, $A816;
  241.     {$ENDC}
  242. FUNCTION AERemoveCoercionHandler(fromType: DescType; toType: DescType; handler: AECoercionHandlerUPP; isSysHandler: BOOLEAN): OSErr;
  243.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  244.     INLINE $303C, $0723, $A816;
  245.     {$ENDC}
  246. FUNCTION AEGetCoercionHandler(fromType: DescType; toType: DescType; VAR handler: AECoercionHandlerUPP; VAR handlerRefcon: LONGINT; VAR fromTypeIsDesc: BOOLEAN; isSysHandler: BOOLEAN): OSErr;
  247.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  248.     INLINE $303C, $0B24, $A816;
  249.     {$ENDC}
  250. {*************************************************************************
  251.   The following calls provide for a coercion interface.
  252. *************************************************************************}
  253. FUNCTION AECoercePtr(typeCode: DescType; dataPtr: UNIV Ptr; dataSize: Size; toType: DescType; VAR result: AEDesc): OSErr;
  254.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  255.     INLINE $303C, $0A02, $A816;
  256.     {$ENDC}
  257. FUNCTION AECoerceDesc({CONST}VAR theAEDesc: AEDesc; toType: DescType; VAR result: AEDesc): OSErr;
  258.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  259.     INLINE $303C, $0603, $A816;
  260.     {$ENDC}
  261.  
  262. {*************************************************************************
  263.  The following calls apply to any AEDesc. Every 'result' descriptor is
  264.  created for you, so you will be responsible for memory management
  265.  (including disposing) of the descriptors so created.  
  266. *************************************************************************}
  267. FUNCTION AECreateDesc(typeCode: DescType; dataPtr: UNIV Ptr; dataSize: Size; VAR result: AEDesc): OSErr;
  268.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  269.     INLINE $303C, $0825, $A816;
  270.     {$ENDC}
  271. FUNCTION AEDisposeDesc(VAR theAEDesc: AEDesc): OSErr;
  272.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  273.     INLINE $303C, $0204, $A816;
  274.     {$ENDC}
  275. FUNCTION AEDuplicateDesc({CONST}VAR theAEDesc: AEDesc; VAR result: AEDesc): OSErr;
  276.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  277.     INLINE $303C, $0405, $A816;
  278.     {$ENDC}
  279.  
  280. {*************************************************************************
  281.   The following calls apply to AEDescList. Since AEDescList is a subtype of
  282.   AEDesc, the calls in the previous section can also be used for AEDescList.
  283.   All list and array indices are 1-based. If the data was greater than
  284.   maximumSize in the routines below, then actualSize will be greater than
  285.   maximumSize, but only maximumSize bytes will actually be retrieved.
  286. *************************************************************************}
  287. FUNCTION AECreateList(factoringPtr: UNIV Ptr; factoredSize: Size; isRecord: BOOLEAN; VAR resultList: AEDescList): OSErr;
  288.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  289.     INLINE $303C, $0706, $A816;
  290.     {$ENDC}
  291. FUNCTION AECountItems({CONST}VAR theAEDescList: AEDescList; VAR theCount: LONGINT): OSErr;
  292.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  293.     INLINE $303C, $0407, $A816;
  294.     {$ENDC}
  295. FUNCTION AEPutPtr(VAR theAEDescList: AEDescList; index: LONGINT; typeCode: DescType; dataPtr: UNIV Ptr; dataSize: Size): OSErr;
  296.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  297.     INLINE $303C, $0A08, $A816;
  298.     {$ENDC}
  299. FUNCTION AEPutDesc(VAR theAEDescList: AEDescList; index: LONGINT; {CONST}VAR theAEDesc: AEDesc): OSErr;
  300.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  301.     INLINE $303C, $0609, $A816;
  302.     {$ENDC}
  303. FUNCTION AEGetNthPtr({CONST}VAR theAEDescList: AEDescList; index: LONGINT; desiredType: DescType; VAR theAEKeyword: AEKeyword; VAR typeCode: DescType; dataPtr: UNIV Ptr; maximumSize: Size; VAR actualSize: Size): OSErr;
  304.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  305.     INLINE $303C, $100A, $A816;
  306.     {$ENDC}
  307. FUNCTION AEGetNthDesc({CONST}VAR theAEDescList: AEDescList; index: LONGINT; desiredType: DescType; VAR theAEKeyword: AEKeyword; VAR result: AEDesc): OSErr;
  308.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  309.     INLINE $303C, $0A0B, $A816;
  310.     {$ENDC}
  311. FUNCTION AESizeOfNthItem({CONST}VAR theAEDescList: AEDescList; index: LONGINT; VAR typeCode: DescType; VAR dataSize: Size): OSErr;
  312.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  313.     INLINE $303C, $082A, $A816;
  314.     {$ENDC}
  315. FUNCTION AEGetArray({CONST}VAR theAEDescList: AEDescList; arrayType: AEArrayType; arrayPtr: AEArrayDataPointer; maximumSize: Size; VAR itemType: DescType; VAR itemSize: Size; VAR itemCount: LONGINT): OSErr;
  316.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  317.     INLINE $303C, $0D0C, $A816;
  318.     {$ENDC}
  319. FUNCTION AEPutArray(VAR theAEDescList: AEDescList; arrayType: AEArrayType; {CONST}VAR arrayPtr: AEArrayData; itemType: DescType; itemSize: Size; itemCount: LONGINT): OSErr;
  320.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  321.     INLINE $303C, $0B0D, $A816;
  322.     {$ENDC}
  323. FUNCTION AEDeleteItem(VAR theAEDescList: AEDescList; index: LONGINT): OSErr;
  324.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  325.     INLINE $303C, $040E, $A816;
  326.     {$ENDC}
  327.  
  328. {*************************************************************************
  329.  The following calls apply to AERecord. Since AERecord is a subtype of
  330.  AEDescList, the calls in the previous sections can also be used for
  331.  AERecord an AERecord can be created by using AECreateList with isRecord
  332.  set to true. 
  333. *************************************************************************}
  334. {
  335.   Note: none of the “key” calls were available in the PowerPC 7.x IntefaceLib.
  336.   In C, a #define is used to map “key” calls to “param” calls.  In pascal
  337.   this mapping is done in externally linked glue code.
  338. }
  339.  
  340. FUNCTION AEPutKeyPtr(VAR theAERecord: AERecord; theAEKeyword: AEKeyword; typeCode: DescType; dataPtr: UNIV Ptr; dataSize: Size): OSErr;
  341.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  342.     INLINE $303C, $0A0F, $A816;
  343.     {$ENDC}
  344. FUNCTION AEPutKeyDesc(VAR theAERecord: AERecord; theAEKeyword: AEKeyword; {CONST}VAR theAEDesc: AEDesc): OSErr;
  345.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  346.     INLINE $303C, $0610, $A816;
  347.     {$ENDC}
  348. FUNCTION AEGetKeyPtr({CONST}VAR theAERecord: AERecord; theAEKeyword: AEKeyword; desiredType: DescType; VAR typeCode: DescType; dataPtr: UNIV Ptr; maximumSize: Size; VAR actualSize: Size): OSErr;
  349.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  350.     INLINE $303C, $0E11, $A816;
  351.     {$ENDC}
  352. FUNCTION AEGetKeyDesc({CONST}VAR theAERecord: AERecord; theAEKeyword: AEKeyword; desiredType: DescType; VAR result: AEDesc): OSErr;
  353.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  354.     INLINE $303C, $0812, $A816;
  355.     {$ENDC}
  356. FUNCTION AESizeOfKeyDesc({CONST}VAR theAERecord: AERecord; theAEKeyword: AEKeyword; VAR typeCode: DescType; VAR dataSize: Size): OSErr;
  357.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  358.     INLINE $303C, $0829, $A816;
  359.     {$ENDC}
  360. FUNCTION AEDeleteKeyDesc(VAR theAERecord: AERecord; theAEKeyword: AEKeyword): OSErr;
  361.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  362.     INLINE $303C, $0413, $A816;
  363.     {$ENDC}
  364. {*************************************************************************
  365.   The following calls create and manipulate the AppleEvent data type.
  366. *************************************************************************}
  367. FUNCTION AECreateAppleEvent(theAEEventClass: AEEventClass; theAEEventID: AEEventID; {CONST}VAR target: AEAddressDesc; returnID: AEReturnID; transactionID: AETransactionID; VAR result: AppleEvent): OSErr;
  368.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  369.     INLINE $303C, $0B14, $A816;
  370.     {$ENDC}
  371.  
  372. {*************************************************************************
  373.   The following calls are used to pack and unpack parameters from records
  374.   of type AppleEvent. Since AppleEvent is a subtype of AERecord, the calls
  375.   in the previous sections can also be used for variables of type
  376.   AppleEvent. The next six calls are in fact identical to the six calls
  377.   for AERecord.
  378. *************************************************************************}
  379. FUNCTION AEPutParamPtr(VAR theAppleEvent: AppleEvent; theAEKeyword: AEKeyword; typeCode: DescType; dataPtr: UNIV Ptr; dataSize: Size): OSErr;
  380.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  381.     INLINE $303C, $0A0F, $A816;
  382.     {$ENDC}
  383. FUNCTION AEPutParamDesc(VAR theAppleEvent: AppleEvent; theAEKeyword: AEKeyword; {CONST}VAR theAEDesc: AEDesc): OSErr;
  384.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  385.     INLINE $303C, $0610, $A816;
  386.     {$ENDC}
  387. FUNCTION AEGetParamPtr({CONST}VAR theAppleEvent: AppleEvent; theAEKeyword: AEKeyword; desiredType: DescType; VAR typeCode: DescType; dataPtr: UNIV Ptr; maximumSize: Size; VAR actualSize: Size): OSErr;
  388.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  389.     INLINE $303C, $0E11, $A816;
  390.     {$ENDC}
  391. FUNCTION AEGetParamDesc({CONST}VAR theAppleEvent: AppleEvent; theAEKeyword: AEKeyword; desiredType: DescType; VAR result: AEDesc): OSErr;
  392.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  393.     INLINE $303C, $0812, $A816;
  394.     {$ENDC}
  395. FUNCTION AESizeOfParam({CONST}VAR theAppleEvent: AppleEvent; theAEKeyword: AEKeyword; VAR typeCode: DescType; VAR dataSize: Size): OSErr;
  396.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  397.     INLINE $303C, $0829, $A816;
  398.     {$ENDC}
  399. FUNCTION AEDeleteParam(VAR theAppleEvent: AppleEvent; theAEKeyword: AEKeyword): OSErr;
  400.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  401.     INLINE $303C, $0413, $A816;
  402.     {$ENDC}
  403.  
  404.  
  405. {*************************************************************************
  406.  The following calls also apply to type AppleEvent. Message attributes are
  407.  far more restricted, and can only be accessed through the following 5
  408.  calls. The various list and record routines cannot be used to access the
  409.  attributes of an event. 
  410. *************************************************************************}
  411. FUNCTION AEGetAttributePtr({CONST}VAR theAppleEvent: AppleEvent; theAEKeyword: AEKeyword; desiredType: DescType; VAR typeCode: DescType; dataPtr: UNIV Ptr; maximumSize: Size; VAR actualSize: Size): OSErr;
  412.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  413.     INLINE $303C, $0E15, $A816;
  414.     {$ENDC}
  415. FUNCTION AEGetAttributeDesc({CONST}VAR theAppleEvent: AppleEvent; theAEKeyword: AEKeyword; desiredType: DescType; VAR result: AEDesc): OSErr;
  416.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  417.     INLINE $303C, $0826, $A816;
  418.     {$ENDC}
  419. FUNCTION AESizeOfAttribute({CONST}VAR theAppleEvent: AppleEvent; theAEKeyword: AEKeyword; VAR typeCode: DescType; VAR dataSize: Size): OSErr;
  420.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  421.     INLINE $303C, $0828, $A816;
  422.     {$ENDC}
  423. FUNCTION AEPutAttributePtr(VAR theAppleEvent: AppleEvent; theAEKeyword: AEKeyword; typeCode: DescType; dataPtr: UNIV Ptr; dataSize: Size): OSErr;
  424.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  425.     INLINE $303C, $0A16, $A816;
  426.     {$ENDC}
  427. FUNCTION AEPutAttributeDesc(VAR theAppleEvent: AppleEvent; theAEKeyword: AEKeyword; {CONST}VAR theAEDesc: AEDesc): OSErr;
  428.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  429.     INLINE $303C, $0627, $A816;
  430.     {$ENDC}
  431.  
  432.  
  433. {$ALIGN RESET}
  434. {$POP}
  435.  
  436. {$SETC UsingIncludes := AEDataModelIncludes}
  437.  
  438. {$ENDC} {__AEDATAMODEL__}
  439.  
  440. {$IFC NOT UsingIncludes}
  441.  END.
  442. {$ENDC}
  443.